這個系列誕生的理由很單純,就是用鐵人賽的 deadline 逼自己暴風學習
節點自動擴縮是 Kubernetes 裡「最雲」的一塊:它站在 k8s 排程與雲端運算資源的交界上。
傳統答案是 Cluster Autoscaler(CA),但用過的人多少都有怨言:綁 node group、
擴容慢、機型要事先規劃。Karpenter 是 AWS 開源的版本答案,現在已捐給 CNCF、由
SIG Autoscaling 維護。它的做法:不管 node group,直接看 pending pod 需要什麼,
就去開什麼機器,60 秒內給你節點。
這個設計差異背後,藏著整套 k8s 排程模型的知識。所以學 Karpenter,
等於被迫把 scheduler、requests/limits、affinity、PDB 全部學一遍。完美的教材。
接下來會先把 k8s 排程和 autoscaling 的基本功補齊,再把 Karpenter 搬到本機
動手玩,該踩的坑一次踩過。中間找一個週末上真正的 AWS 驗證幾件事,其他時間
都在 Homelab 上跑。後段會往裡面多鑽一點,把幾個關鍵行為背後的邏輯讀懂。最後收斂
成幾篇整理,把這 30 天能帶走的東西寫下來。順序照實驗進度走,不在這裡先綁死。
Day 2 從最根本的問題開始:一個 pod 從 kubectl apply 到跑起來,中間發生了什麼?
我們會故意讓 pod 卡在 Pending,然後把 scheduler 的決策過程一步步挖出來。